package com.gl.glcourses.services;

import java.util.List;

import com.gl.glcourses.vos.Confirmacion;
import com.gl.glcourses.vos.EdicionCurso;
import com.gl.glcourses.vos.EstadoEdicionCurso;
import com.gl.glcourses.vos.EstadoParticipante;
import com.gl.glcourses.vos.PresentismoSesionEdicionCurso;
import com.gl.glcourses.vos.TipoParticipante;
import com.gl.glcourses.vos.Usuario;

public interface IEdicionCursoServices {

	Confirmacion crearEdicionCurso(EdicionCurso edicionCurso,boolean cursoAbierto) throws Exception;

	Confirmacion publicarEdicionCurso(EdicionCurso edicionCurso)throws Exception;

	Confirmacion cambiarEstadoEdicionCurso(EdicionCurso edicionCurso, EstadoEdicionCurso estadoEdicionCurso) throws Exception;

	EdicionCurso buscarEdicionCurso(EdicionCurso edicionCurso) throws Exception;

	List<EdicionCurso> listarEdicionesCursos() throws Exception;

	Confirmacion inscribirParticipante(EdicionCurso edicionCurso ,Usuario usuario, TipoParticipante tipoParticipante, EstadoParticipante estadoParticipante)throws Exception;

	List<EdicionCurso> listarEdicionesCursosPublicado() throws Exception;
	
	List<EdicionCurso>listarEdicionCursosPorUsuario(Usuario usuario) throws Exception;
	
	List<PresentismoSesionEdicionCurso> buscarPresentismoEdicion(EdicionCurso edicionCurso) throws Exception;

	Confirmacion guardarPresentismo(List<PresentismoSesionEdicionCurso> presentismosSesionEdicionCurso) throws Exception;
	
	List<EdicionCurso>buscarEdicionCursosAprobados(Usuario usuario) throws Exception;

	List<EdicionCurso> buscarEdicionesCursosDictadas() throws Exception;
}